private _startSync() {
this.state(TestCase.State.Running);
this.runtime(0);
this._started = Date.now();
var failure: Error;
var failed = false;
try {this._test();
}
catch (error) {
failed = true;
failure = error;
}
this.runtime(Date.now() - this._started);
if (failed) {
this.failure(failure);
this.state(TestCase.State.Failed);
}
else {this.state(TestCase.State.Succeeded);
}
}
private _startAsync(callback?: () => void) {
this.state(TestCase.State.Running);
this.runtime(0);
this._started = Date.now();
var failure: Error;
var failedSynchrously = false;
try {this._test((failure?) => {
this.runtime(Date.now() - this._started);
if (failure) {
this.failure(failure);
this.state(TestCase.State.Failed);
}
else {this.state(TestCase.State.Succeeded);
}
if (callback)
callback();});
}
catch (error) {
failedSynchrously = true;
failure = error;
}
this.runtime(Date.now() - this._started);
if (failedSynchrously) {
this.failure(failure);
this.state(TestCase.State.Failed);
if (callback)
callback();}
}
}
export module TestCase {
export enum State {
NotStarted, Running, Succeeded, Failed}
}
}